﻿using System;
using System.Collections.Generic;
using System.Net;
using System.Data.Common;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Kingdee.BOS;


namespace B2CProject
{
   public  class IMPORTADDRESS
    {
       public string SAL_B2CADDRESS(DataSet ds)
       {
           string result = "";
           string FID = "";
           try
           {
               //// K/3 Cloud业务站点URL
               //// using Kingdee.BOS.WebApi.Client; // (需引用Kingdee.BOS.WebApi.Client.dll)  Cloud 业务站点Url
               //ApiClient client = new ApiClient("http://WIN-QPA2HIRFFI6/K3Cloud/");  //这个地址同网页打开的客户端地址
               //// 调用登录接口：d
               //// 参数说明：
               //// dbid     : 数据中心id。到管理中心数据库搜索：
               ////            select FDataCenterId, * from T_BAS_DataCenter
               //// userName : 用户名
               //// password ：原始密码（未加密）
               //// loid     : 语言id，中文为2052，中文繁体为3076，英文为1033
               //object[] loginInfo = new object[] {
               //    "57b9a94ba0e16f",//帐套Id
               // "赵元甲",//用户名
               // "Duocai2016",//密码
               // 2052};//语言id
               ////调用登陆接口 参数 数据中心Id，用户名，密码，语言id
               //bool ret = client.Login("57b9a94ba0e16f", "赵元甲", "Duocai2016", 2052);  1 5b9f77d7c99d12   2 5b7d0014505c1e
               InvokeHelper.DBID = "5b9f77d7c99d12";
               var login = InvokeHelper.Login();
               var iResult = JObject.Parse(login)["LoginResultType"].Value<int>();
               if (iResult != 1 && iResult != -5) // 登陆成功，开始保存数据  if (iResult == 1 || iResult == -5)
               {
                   //return "当前用户登录失败!";
                   throw new KDBusinessException("", "当前用户登录失败");
               }
               else
               {
                   string FRECEIVEPERSON = ds.Tables[0].Rows[0]["FRECEIVEPERSON"].ToString();  //收获人
                   string FREGIONID = ds.Tables[0].Rows[0]["FREGIONID"].ToString();  //省份
                   string FCITYID = ds.Tables[0].Rows[0]["FCITYID"].ToString();  //城市
                   string FCOUNTYID = ds.Tables[0].Rows[0]["FCOUNTYID"].ToString();  //区
                   string FADDRESS = ds.Tables[0].Rows[0]["FADDRESS"].ToString();//地址
                   string FFULLADDRESS = ds.Tables[0].Rows[0]["FFULLADDRESS"].ToString();// 地址
                   string FMOBILE = ds.Tables[0].Rows[0]["FMOBILE"].ToString();//电话


                   // 开始构建Web API参数对象
                   // 参数根对象：包含Creator、NeedUpDateFields、Model这三个子参数
                   // using Newtonsoft.Json.Linq;  // (需引用Newtonsoft.Json.dll)
                   JObject jsonRoot = new JObject();

                   // Creator: 创建用户
                   jsonRoot.Add("demo", "000000");

                   // NeedUpDateFields: 哪些字段需要更新？为空则表示参数中全部字段，均需要更新
                   jsonRoot.Add("NeedUpDateFields", new JArray(""));

                   // Model: 单据详细数据参数
                   JObject model = new JObject();
                   jsonRoot.Add("Model", model);


                   // 开始设置单据字段值
                   // 必须设置的字段：主键、单据类型、主业务组织，各必录且没有设置默认值的字段
                   // 特别注意：字段Key大小写是敏感的，建议从BOS设计器中，直接复制字段的标识属性过来

                   // 单据主键：必须填写，系统据此判断是新增还是修改单据；新增单据，填0
                   model.Add("FID", 0);
                   // 单据编号：可以忽略，由系统根据编码规则自动生成
                   model.Add("FBillNo", "");

                   //收货人                                                                
                   model.Add("FReceivePerson", FRECEIVEPERSON);

                   // 单据类型:：必须填写，是基础资料字段  所有基础资料字段都按FNumber赋值，别用其他字段 国家
                   JObject basedata = new JObject();
                   basedata.Add("FNumber", "00001");      //标准
                   model.Add("FCountry", basedata);

                   //省份
                   basedata = new JObject();
                   basedata.Add("FNumber", FREGIONID);
                   model.Add("FRegionId", basedata);

                   //城市
                   basedata = new JObject();
                   basedata.Add("FNumber", FCITYID);
                   model.Add("FCityID", basedata);

                   //区/县
                   basedata = new JObject();
                   basedata.Add("FNumber", FCOUNTYID);
                   model.Add("FCountyID", basedata);

                   //地址 FADDRESS
                   model.Add("FAddress", FADDRESS);

                   //详细地址
                   model.Add("FFULLADDRESS", FFULLADDRESS);

                   //电话
                   model.Add("FMobile", FMOBILE);

                   string send = JsonConvert.SerializeObject(jsonRoot);

                   result = InvokeHelper.Save("ECC_ReceiveAddress", send);
               }
               JObject jo = (JObject)JsonConvert.DeserializeObject(result);
               string respones = jo["Result"]["ResponseStatus"]["IsSuccess"].ToString();
               if (respones.ToUpper() == "TRUE")
               {
                   FID = jo["Result"]["Id"].ToString();
                   // return CreateReturn("1", "TRUE", re_BillNo);
                   return FID;
               }
               else
               {

                   throw new KDBusinessException("", jo.ToString());
               }
           }
           catch (Exception exp)
           {
               StringBuilder sb = new StringBuilder();
               sb.AppendLine("程序运行遇到了未知的错误：");
               sb.Append("错误提示：").AppendLine(exp.Message);
               sb.Append("错误堆栈：").AppendLine(exp.StackTrace);
               throw new KDBusinessException("", sb.ToString());

           }
       }

    }
}
